
#ifndef _ParticleSystem_H_
#define _ParticleSystem_H_

#include "Particle.h"
#include "ParticleEmitter.h"
#include "ParticleModifier.h"

#include <vector>


class ParticleSystem {

  public:
    // The emitters become the responsibility of the particle system to free.
    ParticleSystem(ParticleEmitter *emitter);

    ParticleSystem(std::vector<ParticleEmitter*> emitters);

    ParticleSystem(std::vector<ParticleEmitter*> emitters, 
                   std::vector<ParticleModifier*> modifiers);

    ~ParticleSystem();

    void update(void);
    void render(void);
    bool active(void);

  private:
  
    std::vector<Particle> particles;  
    std::vector<ParticleEmitter*> emitters;
    std::vector<ParticleModifier*> modifiers;

};


#endif

